// 编写回复路由
const express = require('express')
const router = express.Router()
const { v4: uuidv4 } = require('uuid')
// 引入jwt token工具
const JwtUtil = require('../../utils/jwt')
// 导入回复数据模块
const replyContentModel = require('../../model/replyModel/content')
// 增（添加回复）
// 参数：content_id, reply_content_message, from_user_id,to_user_id,reply_create_time
router.get('/add', async (req, res) => {
    let content_id = req.query.content_id
    let comment_content_id = req.query.comment_content_id
    let reply_content_message = req.query.reply_content_message
    let from_user_id = req.query.from_user_id // 谁写的回复
    let to_user_id = req.query.to_user_id //     给谁的回复
    let reply_create_time = req.body.user_create_time || getCreateTime.now()//  用户创建的时间 （'2022-09-29 00:00:00'）
    let reply_content_id = uuidv4()
    let token = req.query.token
    // 请求需要进行token校验 
    let jwt = new JwtUtil(token)
    // 返回一个对象 
    let result = jwt.verifyToken()
    // 验通过执行下一步，否则就返回登陆信息不正确
    if (result == 'err') {
        res.send({
            code: -1,
            msg: '登录已过期,请重新登录。'
        });
    } else {
        if (result.data) {
            // 调用添加回复方法
            await replyContentModel.add(content_id, reply_content_message,from_user_id,to_user_id,reply_create_time,reply_content_id,comment_content_id)
                .then(
                    data => {
                        res.send(data)
                    }
                )
                .catch(
                    err => {
                        res.send({ code: 500, msg: '服务器异常...', err })
                    }
                )
        }
    }
})
// 删（删除回复）
// 参数：reply_content_id
router.get('/remove', async (req, res) => {
    let token = req.query.token
    let reply_content_id = req.query.reply_content_id
    // 请求需要进行token校验 
    let jwt = new JwtUtil(token)
    // 返回一个对象 
    let result = jwt.verifyToken()
    // 验通过执行下一步，否则就返回登陆信息不正确
    if (result == 'err') {
        res.send({
            code: -1,
            msg: '登录已过期,请重新登录。'
        });
    } else {
        // 用户是否在线
        if (result.data) {
            // 调用删除回复方法（根据回复ID操作）
            await replyContentModel.remove(reply_content_id)
                .then(
                    data => {
                        res.send(data)
                    }
                )
                .catch(
                    err => {
                        res.send({ code: 500, msg: '服务器异常...', err })
                    }
                )
        }
    }
})
// 查 (查询回复)
// 参数：comment_content_id
router.get('/list', async (req, res) => {
    let comment_content_id = req.query.comment_content_id
    // 调用查询回复方法
    await replyContentModel.list(comment_content_id)
        .then(
            data => {
                res.send(data)
            }
        )
        .catch(
            err => {
                res.send({ code: 500, msg: '服务器异常...', err })
            }
        )
})

// 获取指定内容回复列表
router.get('/items', async (req, res) => {
    const page_num = req.query.page_num //当前的页码
    const page_size = req.query.page_size //当前页的数量
    // 调用获取分页内容列表
    await replyContentModel.items(page_num, page_size)
        .then(
            data => {
                res.send(data)
            }
        )
        .catch(
            err => {
                res.send({ code: 500, msg: '服务器异常...1', err })
            }
        )
})

// 获取内容回复总数
router.get('/all', async (req, res) => {
    // 调用获取分页内容回复列表
    await replyContentModel.all()
        .then(
            data => {
                res.send(data)
            }
        )
        .catch(
            err => {
                res.send({ code: 500, msg: '服务器异常...', err })
            }
        )
})

//路由挂在模块系统下
module.exports = router;